.

Introdução ao R para as Ciências humanas: visualização e manipulação de dados

R-Ladies Natal

Mahayana Godoy

outubro/2020



Análise quantitativa em Ciências Humanas


  • Se tornando comum, porque hoje é mais fácil do que nunca extrair e analisar dados (numéricos ou textuais)


  • Relaciona-se com outros tipos de análise, dando suporte ou ajudando a gerar insights

Por que usar R?


Reprodução: permite reprodução da análise, dando espaço a auditoria e facilidade em colaboração


Versatilidade: mais possibilidades que uma planilha de excel


Como o R funciona?

Hoje


  • Visualização de dados com o ggplot

  • Manipulação e criação de tabelas com o dplyr

  • Ambos fazem parte do pacote tidyverse

  • Pacote gapminder para nosso conjunto de dados

Começando

Abrindo o Rstudio

Criando uma nova sessão

Criando comentários

Salvando seu script

Salvando seu script em .R

Vamos abrir um script existente

Arquivo do workshop de hoje

Usando nosso script

Funções básicas

O R é uma calculadora

#### Comandos basicos: R como calculadora

2+2
## [1] 4
2^3
## [1] 8
14-1
## [1] 13

Funções básicas

Ele também usa funções para seus cálculos

sqrt(81)
## [1] 9
log(2)
## [1] 0.6931472
exp(5)
## [1] 148.4132

Inspecionando o conjunto de dados

Biblioteca

Assumindo que você já instalou o pacote com install.packages() conforme a mensagem que enviei antes do curso, vamos carregar os pacotes a serem usados.

# carrecando bibliotecas

library(gapminder)
library(tidyverse)

Se você quiser aprender a importar seu próprio conjunto de dados, veja a seção 1 do material em mahayana.me/mlm

Inspecionando

## vendo o dataset

gapminder
## # A tibble: 1,704 x 6
##    country     continent  year lifeExp      pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.
##  2 Afghanistan Asia       1957    30.3  9240934      821.
##  3 Afghanistan Asia       1962    32.0 10267083      853.
##  4 Afghanistan Asia       1967    34.0 11537966      836.
##  5 Afghanistan Asia       1972    36.1 13079460      740.
##  6 Afghanistan Asia       1977    38.4 14880372      786.
##  7 Afghanistan Asia       1982    39.9 12881816      978.
##  8 Afghanistan Asia       1987    40.8 13867957      852.
##  9 Afghanistan Asia       1992    41.7 16317921      649.
## 10 Afghanistan Asia       1997    41.8 22227415      635.
## # … with 1,694 more rows

Inspecionando

## inspecionando variaveis

str(gapminder)
## tibble [1,704 × 6] (S3: tbl_df/tbl/data.frame)
##  $ country  : Factor w/ 142 levels "Afghanistan",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ continent: Factor w/ 5 levels "Africa","Americas",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ year     : int [1:1704] 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 ...
##  $ lifeExp  : num [1:1704] 28.8 30.3 32 34 36.1 ...
##  $ pop      : int [1:1704] 8425333 9240934 10267083 11537966 13079460 14880372 12881816 13867957 16317921 22227415 ...
##  $ gdpPercap: num [1:1704] 779 821 853 836 740 ...
?gapminder

Inspecionando

Você pode salvar o conjunto de dados com outro nome (ou o mesmo) na área Environment

## salvando em environment

gm <- gapminder

Agora você pode clicar e ver esse conjunto de dados na sua área Environment.

Inspecionando

## acessando as variaveis

gapminder$continent
##    [1] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##    [9] Asia     Asia     Asia     Asia     Europe   Europe   Europe   Europe  
##   [17] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##   [25] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##   [33] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##   [41] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##   [49] Americas Americas Americas Americas Americas Americas Americas Americas
##   [57] Americas Americas Americas Americas Oceania  Oceania  Oceania  Oceania 
##   [65] Oceania  Oceania  Oceania  Oceania  Oceania  Oceania  Oceania  Oceania 
##   [73] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##   [81] Europe   Europe   Europe   Europe   Asia     Asia     Asia     Asia    
##   [89] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##   [97] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [105] Asia     Asia     Asia     Asia     Europe   Europe   Europe   Europe  
##  [113] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [121] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [129] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
##  [137] Americas Americas Americas Americas Americas Americas Americas Americas
##  [145] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [153] Europe   Europe   Europe   Europe   Africa   Africa   Africa   Africa  
##  [161] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [169] Americas Americas Americas Americas Americas Americas Americas Americas
##  [177] Americas Americas Americas Americas Europe   Europe   Europe   Europe  
##  [185] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [193] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [201] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [209] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [217] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [225] Asia     Asia     Asia     Asia     Africa   Africa   Africa   Africa  
##  [233] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [241] Americas Americas Americas Americas Americas Americas Americas Americas
##  [249] Americas Americas Americas Americas Africa   Africa   Africa   Africa  
##  [257] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [265] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [273] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
##  [281] Americas Americas Americas Americas Americas Americas Americas Americas
##  [289] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [297] Asia     Asia     Asia     Asia     Americas Americas Americas Americas
##  [305] Americas Americas Americas Americas Americas Americas Americas Americas
##  [313] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [321] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [329] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [337] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [345] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
##  [353] Americas Americas Americas Americas Americas Americas Americas Americas
##  [361] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [369] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
##  [377] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [385] Americas Americas Americas Americas Americas Americas Americas Americas
##  [393] Americas Americas Americas Americas Europe   Europe   Europe   Europe  
##  [401] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [409] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [417] Europe   Europe   Europe   Europe   Africa   Africa   Africa   Africa  
##  [425] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [433] Americas Americas Americas Americas Americas Americas Americas Americas
##  [441] Americas Americas Americas Americas Americas Americas Americas Americas
##  [449] Americas Americas Americas Americas Americas Americas Americas Americas
##  [457] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [465] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
##  [473] Americas Americas Americas Americas Americas Americas Americas Americas
##  [481] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [489] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [497] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [505] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [513] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
##  [521] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [529] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [537] Europe   Europe   Europe   Europe   Africa   Africa   Africa   Africa  
##  [545] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [553] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [561] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
##  [569] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [577] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [585] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
##  [593] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [601] Americas Americas Americas Americas Americas Americas Americas Americas
##  [609] Americas Americas Americas Americas Africa   Africa   Africa   Africa  
##  [617] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [625] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [633] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
##  [641] Americas Americas Americas Americas Americas Americas Americas Americas
##  [649] Americas Americas Americas Americas Americas Americas Americas Americas
##  [657] Americas Americas Americas Americas Asia     Asia     Asia     Asia    
##  [665] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [673] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [681] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [689] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [697] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [705] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [713] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [721] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [729] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [737] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [745] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [753] Europe   Europe   Europe   Europe   Asia     Asia     Asia     Asia    
##  [761] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [769] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
##  [777] Europe   Europe   Europe   Europe   Americas Americas Americas Americas
##  [785] Americas Americas Americas Americas Americas Americas Americas Americas
##  [793] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [801] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [809] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [817] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [825] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
##  [833] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [841] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [849] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [857] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [865] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [873] Asia     Asia     Asia     Asia     Africa   Africa   Africa   Africa  
##  [881] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [889] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [897] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [905] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [913] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [921] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [929] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [937] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
##  [945] Asia     Asia     Asia     Asia     Africa   Africa   Africa   Africa  
##  [953] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [961] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [969] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [977] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
##  [985] Americas Americas Americas Americas Americas Americas Americas Americas
##  [993] Americas Americas Americas Americas Asia     Asia     Asia     Asia    
## [1001] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1009] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1017] Europe   Europe   Europe   Europe   Africa   Africa   Africa   Africa  
## [1025] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1033] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1041] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
## [1049] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1057] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1065] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
## [1073] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1081] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1089] Europe   Europe   Europe   Europe   Oceania  Oceania  Oceania  Oceania 
## [1097] Oceania  Oceania  Oceania  Oceania  Oceania  Oceania  Oceania  Oceania 
## [1105] Americas Americas Americas Americas Americas Americas Americas Americas
## [1113] Americas Americas Americas Americas Africa   Africa   Africa   Africa  
## [1121] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1129] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1137] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
## [1145] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1153] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1161] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1169] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1177] Americas Americas Americas Americas Americas Americas Americas Americas
## [1185] Americas Americas Americas Americas Americas Americas Americas Americas
## [1193] Americas Americas Americas Americas Americas Americas Americas Americas
## [1201] Americas Americas Americas Americas Americas Americas Americas Americas
## [1209] Americas Americas Americas Americas Asia     Asia     Asia     Asia    
## [1217] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1225] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1233] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1241] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1249] Americas Americas Americas Americas Americas Americas Americas Americas
## [1257] Americas Americas Americas Americas Africa   Africa   Africa   Africa  
## [1265] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1273] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1281] Europe   Europe   Europe   Europe   Africa   Africa   Africa   Africa  
## [1289] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1297] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1305] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
## [1313] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1321] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1329] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
## [1337] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1345] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1353] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
## [1361] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1369] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1377] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1385] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1393] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1401] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1409] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1417] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1425] Europe   Europe   Europe   Europe   Asia     Asia     Asia     Asia    
## [1433] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1441] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1449] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1457] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1465] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1473] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1481] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1489] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1497] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1505] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1513] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1521] Africa   Africa   Africa   Africa   Asia     Asia     Asia     Asia    
## [1529] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1537] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1545] Africa   Africa   Africa   Africa   Americas Americas Americas Americas
## [1553] Americas Americas Americas Americas Americas Americas Americas Americas
## [1561] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1569] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
## [1577] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1585] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1593] Africa   Africa   Africa   Africa   Europe   Europe   Europe   Europe  
## [1601] Europe   Europe   Europe   Europe   Europe   Europe   Europe   Europe  
## [1609] Americas Americas Americas Americas Americas Americas Americas Americas
## [1617] Americas Americas Americas Americas Americas Americas Americas Americas
## [1625] Americas Americas Americas Americas Americas Americas Americas Americas
## [1633] Americas Americas Americas Americas Americas Americas Americas Americas
## [1641] Americas Americas Americas Americas Asia     Asia     Asia     Asia    
## [1649] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1657] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1665] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1673] Asia     Asia     Asia     Asia     Asia     Asia     Asia     Asia    
## [1681] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1689] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## [1697] Africa   Africa   Africa   Africa   Africa   Africa   Africa   Africa  
## Levels: Africa Americas Asia Europe Oceania

Inspecionando

## acessando as variaveis como argumento de funcao

unique(gapminder$continent)
## [1] Asia     Europe   Africa   Americas Oceania 
## Levels: Africa Americas Asia Europe Oceania

Sumário das estatísticas

summary(gapminder)
##         country        continent        year         lifeExp     
##  Afghanistan:  12   Africa  :624   Min.   :1952   Min.   :23.60  
##  Albania    :  12   Americas:300   1st Qu.:1966   1st Qu.:48.20  
##  Algeria    :  12   Asia    :396   Median :1980   Median :60.71  
##  Angola     :  12   Europe  :360   Mean   :1980   Mean   :59.47  
##  Argentina  :  12   Oceania : 24   3rd Qu.:1993   3rd Qu.:70.85  
##  Australia  :  12                  Max.   :2007   Max.   :82.60  
##  (Other)    :1632                                                
##       pop              gdpPercap       
##  Min.   :6.001e+04   Min.   :   241.2  
##  1st Qu.:2.794e+06   1st Qu.:  1202.1  
##  Median :7.024e+06   Median :  3531.8  
##  Mean   :2.960e+07   Mean   :  7215.3  
##  3rd Qu.:1.959e+07   3rd Qu.:  9325.5  
##  Max.   :1.319e+09   Max.   :113523.1  
## 

Perguntas


  • Qual a relação entre PIB per capta e expectativa de vida?


  • Qual a relação entre PIB per capta e continente?

Visualizando dados

Como fazer gráficos no R?

  • ggplot2: pacote de visualização gráfica de dados


  • Baseado no livro Grammar of Graphics (Leland Wilkinson)


  • Um gráfico é como se fosse uma frase de uma língua, e cada elemento do gráfico é uma palavra

Como fazer gráficos no R?

## sintaxe basica

ggplot(dados, aes(x = variável_explicativa, y = variável_resposta))

dados: o conjunto de dados a ser utilizado para trabalhar a visualização

aes: estética (aesthetics), indicando as variáveis selecionadas para plotagem, agrupamento, coloração etc.

Como visualizar?



Como visualizar a relação entre PIB per capta e expectativa de vida?

criando a estrutura básica do nosso gráfico

## dados e estetica

ggplot(gapminder, aes(x = gdpPercap, y = lifeExp))

criando a estrutura básica do nosso gráfico

# dados e estetica

ggplot(gapminder, aes(x = gdpPercap, y = lifeExp))

criando a estrutura básica do nosso gráfico

# dados, estetica e geometria

ggplot(gapminder, aes(x = gdpPercap, y = lifeExp))+
  geom_point()

dados: o conjunto de dados a ser utilizado para trabalhar a visualização

aes: estética (aesthetics), indicando as variáveis selecionadas para plotagem, agrupamento, coloração etc.

geom: geometria, determinando o tipo gráfico a ser usado (pontos, linhas, barras, colunas etc.)

PIB per capta x lifeExp

ggplot(gapminder, aes(x = gdpPercap, y = lifeExp))+
  geom_point()

PIB per capta x lifeExp


Problemas: dados de todos os anos!

# verificando os anos da amostra

unique(gapminder$year)
##  [1] 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 2002 2007

Filtrando e selecionado dados

Manipulando dados

Queremos selecionar apenas dados em que year é igual a 2007

gapminder
## # A tibble: 1,704 x 6
##    country     continent  year lifeExp      pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.
##  2 Afghanistan Asia       1957    30.3  9240934      821.
##  3 Afghanistan Asia       1962    32.0 10267083      853.
##  4 Afghanistan Asia       1967    34.0 11537966      836.
##  5 Afghanistan Asia       1972    36.1 13079460      740.
##  6 Afghanistan Asia       1977    38.4 14880372      786.
##  7 Afghanistan Asia       1982    39.9 12881816      978.
##  8 Afghanistan Asia       1987    40.8 13867957      852.
##  9 Afghanistan Asia       1992    41.7 16317921      649.
## 10 Afghanistan Asia       1997    41.8 22227415      635.
## # … with 1,694 more rows

Manipulando dados

# filtrando conjunto de dados

gapminder %>% 
  filter(year == 2007)
## # A tibble: 142 x 6
##    country     continent  year lifeExp       pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>     <int>     <dbl>
##  1 Afghanistan Asia       2007    43.8  31889923      975.
##  2 Albania     Europe     2007    76.4   3600523     5937.
##  3 Algeria     Africa     2007    72.3  33333216     6223.
##  4 Angola      Africa     2007    42.7  12420476     4797.
##  5 Argentina   Americas   2007    75.3  40301927    12779.
##  6 Australia   Oceania    2007    81.2  20434176    34435.
##  7 Austria     Europe     2007    79.8   8199783    36126.
##  8 Bahrain     Asia       2007    75.6    708573    29796.
##  9 Bangladesh  Asia       2007    64.1 150448339     1391.
## 10 Belgium     Europe     2007    79.4  10392226    33693.
## # … with 132 more rows

Manipulando dados

# filtrando dados 

gapminder %>% 
  filter(country == "Brazil")
## # A tibble: 12 x 6
##    country continent  year lifeExp       pop gdpPercap
##    <fct>   <fct>     <int>   <dbl>     <int>     <dbl>
##  1 Brazil  Americas   1952    50.9  56602560     2109.
##  2 Brazil  Americas   1957    53.3  65551171     2487.
##  3 Brazil  Americas   1962    55.7  76039390     3337.
##  4 Brazil  Americas   1967    57.6  88049823     3430.
##  5 Brazil  Americas   1972    59.5 100840058     4986.
##  6 Brazil  Americas   1977    61.5 114313951     6660.
##  7 Brazil  Americas   1982    63.3 128962939     7031.
##  8 Brazil  Americas   1987    65.2 142938076     7807.
##  9 Brazil  Americas   1992    67.1 155975974     6950.
## 10 Brazil  Americas   1997    69.4 168546719     7958.
## 11 Brazil  Americas   2002    71.0 179914212     8131.
## 12 Brazil  Americas   2007    72.4 190010647     9066.

Manipulando dados

Se eu quiser, posso salvar esse subconjunto naminha area Environment

# filtrando dados 

brasil <- gapminder %>% 
  filter(country == "Brazil")

Manipulando dados

  • Usamos um conjunto de comandos do pacote dplyr


  • %>% ou pipe: leva o resultado do código de uma linha e leva como input da linha seguinte


  • dois comandos muito usados: select (seleciona colunas) e filter (filtra por observações das linhas)


  • atalho para escrita do pipe: CTRL + SHIFT + M

Manipulando dados

# combinando select e filter

gapminder %>% 
  select(gdpPercap, lifeExp, year) %>% 
  filter(year == 2007)
## # A tibble: 142 x 3
##    gdpPercap lifeExp  year
##        <dbl>   <dbl> <int>
##  1      975.    43.8  2007
##  2     5937.    76.4  2007
##  3     6223.    72.3  2007
##  4     4797.    42.7  2007
##  5    12779.    75.3  2007
##  6    34435.    81.2  2007
##  7    36126.    79.8  2007
##  8    29796.    75.6  2007
##  9     1391.    64.1  2007
## 10    33693.    79.4  2007
## # … with 132 more rows

Manipulando dados

# erro!

gapminder %>% 
  select(gdpPercap, lifeExp) %>% 
  filter(year == 2007)

! ERRO

Por quê?

Combinando filtros e ggplot

# grafico basico

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point()

Combinando filtros e ggplot

Que outras informações seriam interessantes?

Mexendo na estética (aes)

# mais informacoes

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(shape = continent))

Mexendo na estética (aes)

# mais informacoes 2

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent))

Mudando o tema

# tema bw

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent))+
  theme_bw()

Mudando o tema

# tema classic

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent))+
  theme_classic()

Veja ?theme para mais informações sobre o tema

Mudando a geometria

# ajustanto pontos: alpha

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent), alpha = 0.5)+
  theme_bw()

Mudando a geometria

# ajustando pontos: shape

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent), shape = 2)+
  theme_bw()

Mudando a geometria

# ajustando pontos: size

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent, size = pop), shape = 2)+
  theme_bw()

Adicionando legenda

# informacao

gapminder %>% 
  filter(year == 2007) %>% 
  ggplot(., aes(gdpPercap, lifeExp))+
  geom_point(aes(color = continent), alpha = 0.5)+
  theme_bw()+
  labs(title = "Relação entre PIB per capta e Expectativa de vida em 2007", x = "PIB per capta", y = "Expectativa de vida (em anos)")

Desafio

Reproduza o gráfico abaixo

Desafio

Que gráfico teremos a partir desse código?

gapminder %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5)+
  theme_bw()

Desafio

gapminder %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5)+
  theme_bw()

Desafio

Esse código está errado. Como corrigir?

## corrija o codigo

gapminder %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, color = continent)+
  theme_bw()

Desafio

gapminder %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()

Visualização: facet_wrap()

# usando facet_wrap

gapminder %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()+
  facet_wrap(~ continent)

Visualização



E se eu quiser excluir a Oceania?!



Como resolver?

Visualização

gapminder %>% 
  filter(continent == "Africa" | continent == "Americas" | continent == "Asia" | continent == "Europe") %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()+
  facet_wrap(~ continent)

ou

gapminder %>% 
  filter(continent != "Oceania") %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()+
  facet_wrap(~ continent)

Visualização

# excluindo a Oceania

gapminder %>% 
  filter(continent != "Oceania") %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()+
  facet_wrap(~ continent)

Visualização

# excluindo a Oceania, 4 colunas

gapminder %>% 
  filter(continent != "Oceania") %>% 
  ggplot(., aes(year, lifeExp))+
  geom_point(alpha = 0.5, aes(color = continent))+
  theme_bw()+
  facet_wrap(~ continent, ncol = 4)

Desafio

Desafio

Desafio

Criando tabelas

Pergunta

Como se constrói esse gráfico? O que vai no eixo x e o que vai no eixo y?

Onde queremos chegar

Código base, mas não temos a média!

  ggplot(., aes(year, media))+
  geom_line(aes(color = continent))+
  theme_bw()

Como chegamos?

Tabela que precisamos


## # A tibble: 60 x 3
## # Groups:   year [12]
##     year continent media
##    <int> <fct>     <dbl>
##  1  1952 Africa     39.1
##  2  1952 Americas   53.3
##  3  1952 Asia       46.3
##  4  1952 Europe     64.4
##  5  1952 Oceania    69.3
##  6  1957 Africa     41.3
##  7  1957 Americas   56.0
##  8  1957 Asia       49.3
##  9  1957 Europe     66.7
## 10  1957 Oceania    70.3
## # … with 50 more rows

Como chegamos?

Novas funções do dplyr:

group_by: agrupa observações pelas variáveis informadas

summarise: cria um novo dataframe a partir das variáveis agrupadas

  gapminder %>% 
  group_by(year, continent) %>% 
  summarise(media = mean(lifeExp))

Como chegamos?

# novo conjunto de dados

  gapminder %>% 
  group_by(year, continent) %>% 
  summarise(media = mean(lifeExp))
## # A tibble: 60 x 3
## # Groups:   year [12]
##     year continent media
##    <int> <fct>     <dbl>
##  1  1952 Africa     39.1
##  2  1952 Americas   53.3
##  3  1952 Asia       46.3
##  4  1952 Europe     64.4
##  5  1952 Oceania    69.3
##  6  1957 Africa     41.3
##  7  1957 Americas   56.0
##  8  1957 Asia       49.3
##  9  1957 Europe     66.7
## 10  1957 Oceania    70.3
## # … with 50 more rows

Como chegamos?

# novo conjunto de dados: apenas ano

  gapminder %>% 
  group_by(year) %>% 
  summarise(media = mean(lifeExp))
## # A tibble: 12 x 2
##     year media
##    <int> <dbl>
##  1  1952  49.1
##  2  1957  51.5
##  3  1962  53.6
##  4  1967  55.7
##  5  1972  57.6
##  6  1977  59.6
##  7  1982  61.5
##  8  1987  63.2
##  9  1992  64.2
## 10  1997  65.0
## 11  2002  65.7
## 12  2007  67.0

Como chegamos?

# novo conjunto de dados: apenas pais

  gapminder %>% 
  group_by(continent) %>% 
  summarise(media = mean(lifeExp))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 5 x 2
##   continent media
##   <fct>     <dbl>
## 1 Africa     48.9
## 2 Americas   64.7
## 3 Asia       60.1
## 4 Europe     71.9
## 5 Oceania    74.3

Combinando dplyr + ggplot

# combinando informacoes

gapminder %>% 
  group_by(year, continent) %>% 
  summarise(media = mean(lifeExp)) %>% 
  ggplot(., aes(year, media))+
  geom_line(aes(color = continent))+
  theme_bw()

DESAFIO


Faça um gráfico mostrando o crescimento do pib per capta médio dos continentes europeu, africano e americano.


Resultado desafio

gapminder %>% 
  filter(continent == "Europe" | continent == "Africa" | continent == "Americas") %>% 
  group_by(year, continent) %>% 
  summarise(media = mean(lifeExp)) %>% 
  ggplot(., aes(year, media))+
  geom_line(aes(color = continent))+
  theme_bw()

Recursos

E agora?

Quero fazer outros gráficos ou análises do meu material. Como fazer isso?


  • Tenho um material introdutório em mahayana.me/mlm (seção 1)


  • Leia as mensagens de erro


  • Busque respostas na internet

Onde encontrar ajuda


.



Obrigada!

contato: